The teachings provided herein are directed generally to network printer job control, to interpreting jobs written in one of a plurality of page description languages for printing with a printing apparatus, and more particularly to a method directed at resolving different print drivers and print job headers in a centralized print job environment.
Personal computers have become commonplace on the desks of most office workers. Typically, much of the work product of such computers is intended to be transformed into hardcopy via a printer using digital imaging technology. A typical printer configuration for this purpose comprises a dedicated printer coupled to a personal computer.
However, printers used for this purpose are typically small laser printers which have limited functions and features such as a limited tray capacity which restricts the number and types of copy sheets that can be used to make prints on, or which do not have a finishing capability, etc. Small printers also typically do not following the PostScript™ Printer Control Language standards, employing some proprietary page description language instead, typically handling only some subset of a full page description language.
Larger high speed laser printers normally have a great deal of finishing and copy sheet capability which would allow the personal computer user to have, for example, custom printing and finishing of the work product, an option which for many personal computer users would be highly desirable.
In practice, the personal computers can be used advantageously with a network printing system of the type combining a number of client inputs, such as the personal computers, or the like, and one or more printer outputs. In one example of such network printing systems, a client at one of the inputs sends electronic documents that comprise a job over a local area network (local area network) to one of the printers selected for printing of the job.
In particular, local area networks provide users running dedicated processors the ability to share resources such as printers, file servers, and scanners. Integration of shared resources has been a problem addressed by local area network managers. Local area network managers have made different network protocols transparent to devices running different network protocols. Local area networks also have a variety of print drivers emitting different page description languages, which are directed to specific printer devices.
A page description language is a method of describing printed page(s) in a printer independent format. No standard page description language presently exists, and as a result a number of industry standards have emerged. A page description language establishes an interface between a print driver or client and a print server or printer. Existing page description languages include PostScript™, Hewlett-Packard™ Printer Control Language, and Interpress™ Page Description Language.
Many printing manufacturers provide differing print drivers, which place device dependent information into the page description language print streams as handled by centralized print systems. When it is desirable to redirect this page description language stream to a different printer, this can result in scenarios ranging from outright print job failure, to corrupted print jobs, to undesirable required involvement from an operator in order to direct a print job to completion.
It would therefore be desirable for such a system if there was a homogenous page description language that could be shared among many devices. There are many examples of systems that would be improved by device independent page description languages—such as load balancing systems and print control systems. This need has been solved in the past by generic printer drivers, which place page description language elements that are commonly shared among most devices into their streams.
However, generic printer driver solutions require costly administrative overhead and require the replacement and use of only the customized queues. The generic printer driver solutions may also limit users to a small sub-set of functionality and disable native driver features.
Other output management systems do not attempt to solve the problem regarding device independent page description language streams. The output management systems instead require that an administrator group the hardware devices into compatible or similar families of devices. If any devices cannot be made part of the group, those devices cannot be used by the technology. Examples of such systems include roaming printing or device error detection systems.
Requiring such grouping of hardware is difficult and expensive, particularly for organizations that already have a substantial hardware investment. It may also mean underutilization of devices in the output management systems or necessitate unnecessary purchases of new equipment.
Therefore, it would be desirable to utilize a homogenous page description language that could be shared among many devices.